package main

import "fmt"

type mover interface {
	move()
}
type Dog struct {
	Name string
}

func (d *Dog) move() {
	fmt.Println(d.Name, "正在移动")
}

// 指针接收者传递对象的指针
func (d *Dog) SetName(name string) {
	d.Name = name
}

func main() {
	// d1 := Dog{"大黄"}
	// d1.SetName("二黄")
	// fmt.Println(d1)
	// var d1 mover = Dog{"大黄"}  // 没有实现接口
	var d1 mover = &Dog{"大黄"} // 指针类型实现接口
	fmt.Println(d1)
}
